const hiragana1 = {
  "あ": "a",
  "い": "i",
  "う": "u",
  "え": "e",
  "お": "o",
  "か": "ka",
  "き": "ki",
  "く": "ku",
  "け": "ke",
  "こ": "ko",
  "さ": "sa",
  "し": "si",
  "す": "su",
  "せ": "se",
  "そ": "so",
  "た": "ta",
  "ち": "ti",
  "つ": "tu",
  "て": "te",
  "と": "to",
  "な": "na",
  "に": "ni",
  "ぬ": "nu",
  "ね": "ne",
  "の": "no",
  "は": "ha",
  "ひ": "hi",
  "ふ": "hu",
  "へ": "he",
  "ほ": "ho",
  "ま": "ma",
  "み": "mi",
  "む": "mu",
  "め": "me",
  "も": "mo",
  "や": "ya",
  "い": "i",
  "ゆ": "yu",
  "え": "e",
  "よ": "yo",
  "ら": "ra",
  "り": "ri",
  "る": "ru",
  "れ": "re",
  "ろ": "ro",
  "わ": "wa",
  "い": "i",
  "う": "u",
  "え": "e",
  "を": "wo",
  "ん": "n",
  "が": "ga",
  "ぎ": "gi",
  "ぐ": "gu",
  "げ": "ge",
  "ご": "go",
  "ざ": "za",
  "じ": "zi",
  "ず": "zu",
  "ぜ": "ze",
  "ぞ": "zo",
  "だ": "da",
  "ぢ": "di",
  "づ": "du",
  "で": "de",
  "ど": "do",
  "ば": "ba",
  "び": "bi",
  "ぶ": "bu",
  "べ": "be",
  "ぼ": "bo",
  "ぱ": "pa",
  "ぴ": "pi",
  "ぷ": "pu",
  "ぺ": "pe",
  "ぽ": "po",
};
const hiragana2 = {
  "きゃ": "kya",
  "きゅ": "kyu",
  "きょ": "kyo",
  "ぎゃ": "gya",
  "ぎゅ": "gyu",
  "ぎょ": "gyo",
  "しゃ": "sya",
  "しゅ": "syu",
  "しょ": "syo",
  "じゃ": "ja",
  "じゅ": "ju",
  "じょ": "jo",
  "ちゃ": "cha",
  "ちゅ": "chu",
  "ちょ": "cho",
  "にゃ": "nya",
  "にゅ": "nyu",
  "にょ": "nyo",
  "ひゃ": "hya",
  "ひゅ": "hyu",
  "ひょ": "hyo",
  "びゃ": "bya",
  "びゅ": "byu",
  "びょ": "byo",
  "ぴゃ": "pya",
  "ぴゅ": "pyu",
  "ぴょ": "pyo",
  "みゃ": "mya",
  "みゅ": "myu",
  "みょ": "myo",
  "りゃ": "rya",
  "りゅ": "ryu",
  "りょ": "ryo",
};
const katakana1 = {
  "ア": "a",
  "イ": "i",
  "ウ": "u",
  "エ": "e",
  "オ": "o",
  "カ": "ka",
  "キ": "ki",
  "ク": "ku",
  "ケ": "ke",
  "コ": "ko",
  "サ": "sa",
  "シ": "shi",
  "ス": "su",
  "セ": "se",
  "ソ": "so",
  "タ": "ta",
  "チ": "chi",
  "ツ": "tsu",
  "テ": "te",
  "ト": "to",
  "ナ": "na",
  "ニ": "ni",
  "ヌ": "nu",
  "ネ": "ne",
  "ノ": "no",
  "ハ": "ha",
  "ヒ": "hi",
  "フ": "fu",
  "ヘ": "he",
  "ホ": "ho",
  "マ": "ma",
  "ミ": "mi",
  "ム": "mu",
  "メ": "me",
  "モ": "mo",
  "ヤ": "ya",
  "ユ": "yu",
  "ェ": "e",
  "ヨ": "yo",
  "ラ": "ra",
  "リ": "ri",
  "ル": "ru",
  "レ": "re",
  "ロ": "ro",
  "ワ": "wa",
  "ヲ": "wo",
  "ン": "n",
  "ガ": "ga",
  "ギ": "gi",
  "グ": "gu",
  "ゲ": "ge",
  "ゴ": "go",
  "ザ": "za",
  "ジ": "ji",
  "ズ": "zu",
  "ゼ": "ze",
  "ゾ": "zo",
  "ダ": "da",
  "ヂ": "dji",
  "ヅ": "dzu",
  "デ": "de",
  "ド": "do",
  "バ": "ba",
  "ビ": "bi",
  "ブ": "bu",
  "ベ": "be",
  "ボ": "bo",
  "パ": "pa",
  "ピ": "pi",
  "プ": "pu",
  "ペ": "pe",
  "ポ": "po",
  "フ": "fu",
  "ワ": "wa",
  "ヴ": "vu",
  "シ": "shi",
  "ジ": "ji",
  "チ": "chi",
  "ウ": "wu",
  "ツ": "tsu",
};
const katakana2 = {
  "ウィ": "wi",
  "ウェ": "we",
  "キャ": "kya",
  "キュ": "kyu",
  "キョ": "kyo",
  "ギャ": "gya",
  "ギュ": "gyu",
  "ギョ": "gyo",
  "シャ": "sha",
  "シュ": "shu",
  "ショ": "sho",
  "ジャ": "ja",
  "ジュ": "ju",
  "ジョ": "jo",
  "チャ": "cha",
  "チュ": "chu",
  "チョ": "cho",
  "ヂャ": "dha",
  "ヂュ": "dhu",
  "ヂョ": "dho",
  "ニャ": "nya",
  "ニュ": "nyu",
  "ニョ": "nyo",
  "ヒャ": "hya",
  "ヒュ": "hyu",
  "ヒョ": "hyo",
  "ビャ": "bya",
  "ビュ": "byu",
  "ビョ": "byo",
  "ピャ": "pya",
  "ピュ": "pyu",
  "ピョ": "pyo",
  "ミャ": "mya",
  "ミュ": "myu",
  "ミョ": "myo",
  "リャ": "rya",
  "リュ": "ryu",
  "リョ": "ryo",
  "ヴャ": "vya",
  "ヴュ": "vyu",
  "ヴョ": "vyo",
  "ファ": "fa",
  "フィ": "fi",
  "フェ": "fe",
  "フォ": "fo",
  "ウィ": "wi",
  "ウェ": "we",
  "ウォ": "wo",
  "ツァ": "tsa",
  "ツィ": "tsi",
  "ツェ": "tse",
  "ツォ": "tso",
  "ヴァ": "va",
  "ヴィ": "vi",
  "ヴェ": "ve",
  "ヴォ": "vo",
  "テャ": "tha",
  "ティ": "thi",
  "テュ": "thu",
  "テェ": "the",
  "テョ": "tho",
  "デャ": "dha",
  "ディ": "dhi",
  "デュ": "dhu",
  "デェ": "dhe",
  "デョ": "dho",
  "トァ": "twa",
  "トィ": "twi",
  "トゥ": "twu",
  "トェ": "twe",
  "トォ": "two",
  "ドァ": "dwa",
  "ドィ": "dwi",
  "ドゥ": "dwu",
  "ドェ": "dwe",
  "ドォ": "dwo",
  "シャ": "sha",
  "シュ": "shu",
  "シェ": "she",
  "ショ": "sho",
  "ジャ": "ja",
  "ジュ": "ju",
  "ジェ": "je",
  "ジョ": "jo",
  "チャ": "cha",
  "チュ": "chu",
  "チェ": "che",
  "チョ": "cho",
  "クァ": "kwa",
  "クィ": "kwi",
  "クゥ": "kwu",
  "クェ": "kwe",
  "クォ": "kwo",
  "グァ": "gwa",
  "グィ": "gwi",
  "グゥ": "gwu",
  "グェ": "gwe",
  "グォ": "gwo",
};
export function toRoomaji(str) {
  if (str === undefined) return "";
  for (const key in katakana2) str = str?.replaceAll(key, katakana2[key] + " ");
  for (const key in katakana1) str = str?.replaceAll(key, katakana1[key] + " ");
  for (const key in hiragana2) str = str?.replaceAll(key, hiragana2[key] + " ");
  for (const key in hiragana1) str = str?.replaceAll(key, hiragana1[key] + " ");
  return str;
}
